IBM Books

MAS V3.4 Protocol Reference V2


Using TN3270

This section introduces TN3270 and summarizes the TN3270E server function implemented in IBM routers. It includes the following topics:


Overview

Many companies today are consolidating their WAN traffic onto IP-only backbones. Companies are also simplifying their workstation configurations and attempting to run only the TCP/IP protocol stack at the desktop. However, most of these companies still require access to SNA application hosts.

TN3270 meets these requirements by allowing you to run IP from the desktop over the network and attach to your SNA host through a TN3270 server. The clients connect to the server using a TCP connection. The server provides a gateway function for the downstream TN3270 clients by mapping the client sessions to SNA dependent LU-LU sessions that the server maintains with the SNA host. The TN3270 server handles the conversion between the TN3270 data stream and an SNA 3270 data stream.

To deploy a TN3270 solution, you install TN3270 client software on desktop workstations 4 and TN3270 server software in one of several places discussed below. Client software is available from IBM and many other vendors, and runs on top of the TCP/IP stack in the workstation. A given client product provides one of two possible levels of standards support:

A server implementation that can support TN3270E clients is called a TN3270E server.

Placement of the TN3270 Server Function

The TN3270 server function can be placed in a variety of products and positions within a network, including:

The choice of TN3270 server product and network position is a complex one, involving such factors as:

IBM routers provide a high-performing TN3270E server implementation that scales to large networks. By combining this implementation with the Network Dispatcher feature, you can implement server redundancy and load sharing in large TN3270 installations. You can also place an IBM router out into an SNA or IP network away from the data center and get the same advantages of scalability, incremental addition, and reduced impact of server failure.

TN3270E Server Function

Standards Compliance

The IBM router implementation of TN3270E server supports these RFCs:

RFC 1576
TN3270 Current Practices

RFC 1646
TN3270 Extensions for LU names and Printers

RFC 1647
TN3270 Enhancements

RFC 2355
TN3270 Enhancements (obsoletes RFC 1647)

It can handle both base TN3270 and TN3270E clients at the same time.

Host Connectivity

The path from a TN3270 client to the SNA host consists of two pieces:

The form of the SNA connection from the server to the host depends on how the server represents PUs and dependent LUs. When you are using an IBM router as your TN3270 server, you can configure either of two different ways to establish links and represent PUs and LUs to VTAM:

If an LU-LU session exists when the TN3270 client disconnects from the TN3270 server, an UNBIND or TERM-SELF request will be sent to the host to terminate the LU-LU session. The default is UNBIND cleanup. The local PU or link station must be configured appropriately for TERM-SELF to flow. TERM-SELF should be configured if a session manager (front end) application is being used to get to applications such as TSO or CICS.

SNA Management Support

From a VTAM or NetView/390 operator console, you can control the links, PUs, and LUs involved with TN3270. For LUs, when a TN3270 client connects in, the router reports the client's IP address and TCP port number to VTAM on its session activation flows (via CV64). VTAM console display commands such as "/D NET,ID=(lu name),E" have the ability to display the TCP/IP address information associated with particular LUs. This permits problem determination for TN3270 clients from a VTAM operator console.

VTAM support for receiving and displaying client IP addresses is in CS for OS/390 V2R6 base code. It was also PTF'd to CS for OS/390 V2R5 (VTAM APAR OW31454, TCP/IP APAR PQ12574).

In addition to enabling this console support, APPN generates SNA alerts for a variety of error configurations, and can forward alerts from other SNA devices. There are no alerts specific to the TN3270 server function, but alerts that the router itself generates may relate to SNA resources involved with TN3270.

SNMP MIB and Trap Support

IBM routers support an Internet Draft version of both of these standard MIBs for TN3270 server function:

IBM router support for these MIBs includes the ability to:

In addition, the following enterprise-specific MIB shows the reasons why clients were not able to successfully connect to the TN3270 server:

These TN3270-related MIBs supplement the extensive IBM router MIB support for APPN and SNA resources.

TN3270 Host On-Demand Client Caching

Some IBM router products (currently the 2216 and 2212) support a "Web Server Cache" function, where they can sit in front of an HTTP server and offload the server by caching Web objects and serving them up to requesting clients. Among the objects these routers can cache are Java applets that provide TN3270 client function.

Host On-Demand (HOD) Client Caching allows one of these routers or the IBM Network Utility to cache TN3270 client function applets from an HOD host Web server and serve them to client browsers upon request. The browsers then launch the TN3270 terminal emulation applets. These applets connect to an SNA host either through the router's TN3270 server function, or through some other TN3270 server.

Host On-Demand support is packaged with the TN3270 server function, but you configure the two independently. The router can cache HOD clients but not be configured as a TN3270 server. Likewise, the router can be a TN3270 server with no HOD caching enabled. The Web Server Cache router code loads that do not include TN3270 server function (only on 2216 and 2212) can also cache HOD client applets if so configured.

Because the HOD client cache function is completely separate from the Server function, it is not further discussed in this chapter. See the chapter entitle "Configuring and Monitoring IBM eNetwork Host On-Demand Client Cache" in the Using and Configuring Features publication, for more information on this function.


General TN3270E Server Configuration

This section covers general information about configuring TN3270 server support. For specific example configurations, see "Example Configurations".

Loading the TN3270 Server Code

Depending on your router type and configuration method, you may have to take extra steps to load APPN and TN3270 code and be able to access their command-line configuration and monitoring prompts:

For details about the load add command, see the chapter entitled "The CONFIG Process (CONFIG - Talk 6) and Commands" in the Software User's Guide.

Configuring TN3270 under the APPN Protocol

In the IBM router implementation of TN3270 server, all SNA functions are bundled within the APPN protocol. This means that even when you are configuring SNA subarea host attachment and your SNA host is not running APPN, you must use the configuration and console services of the APPN protocol. In particular:

When you configure SNA subarea support, the router does in fact still function as an APPN network node, but only on links to other APPN nodes. If the only ports and links you configure are those for SNA subarea host attachment, then the APPN function itself does not run.

Server IP Address

To enable the TN3270 server function, you must configure an IP address to which the TN3270 clients will connect. The IBM router TN3270 implementation supports only a single server IP address (but multiple destination TCP ports). The address you configure for TN3270 must match one of the following addresses you configure for IP, otherwise TN3270 will not initialize.

When you choose the IP address for the TN3270 function, you must consider that administrative users also need to be able to establish regular Telnet sessions, to bring up remote router consoles. The default destination port for both Telnet and TN3270 is the same (23), so unless you want one or the other sets of users to use a non-default destination port, you must set aside different IP addresses for Telnet and TN3270 users.

If you are using router code V3.4 or higher, the recommended procedure is to define a loopback interface and use one of the IP addresses on that interface as your TN3270 server IP address. If you are using router code before V3.4, you need to choose either to use a physical interface address for TN3270 and leave the internal address for Telnet, or vice versa. One important consideration in this choice is whether you have multiple parallel TN3270 servers, each of which needs the same server address but different Telnet addresses for maintenance.

Server TCP Ports

When you configure the server IP address, you also specify a destination TCP port number to which the TN3270 clients will connect. You must provide at least one port number as part of server's general configuration (TN3270E config> set command, Configuration Program TN3270E Server/General panel). Optionally, you can configure additional TCP ports for the TN3270 server to "listen" on (TN3270E config> add port command, Configuration Program TN3270E Server/Ports panel).

The following are reasons you might want to configure more than one server TCP port:

Defining PUs

You must always define dependent PUs in the router, to contain the LUs that the router associates with incoming TN3270 client TCP connections. Each PU you define must have a corresponding PU definition in VTAM.

If you are using DLUR for your host connection, the internal PUs you define each appear to have an "inside the box" logical link to the DLUR function. This logical link is always active when APPN and TN3270 are active. DLUR may at the same time be serving other dependent PUs external to the router.

You need to define only as many PUs as you need to contain your LUs, where each PU can have 255 LUs. If you are defining more than one local PU, you distinguish them by specifying different local node IDs. To configure a local PU for DLUR using the command line, use the add local-pu command. From the Configuration Program, select Local PUs from under the TN3270E Server protocol in the Navigation window.

If you are using subarea links for your host connection, each link is bound to an associated internal PU. The router creates this internal PU automatically when you configure a subarea link; you do not explicitly configure internal PUs the way you do with DLUR. The link associated with each PU is a real external link which can go up or down. Some users distribute the LUs that are in a single pool across multiple subarea PUs, so that if one link fails there may be another available to service client reconnection attempts.

To configure a subarea link using the command line, use the add link command. Respond yes to the question "Solicit SSCP session?", and no to the question "Does link support APPN function?". From the Configuration Program, select Interfaces from under the APPN protocol in the Navigation Window, then click on the Link stations column heading. If you are configuring more than one subarea link under the same physical port, you must enable that port to support multiple PUs. You distinguish the PUs by local node ID as well as by local addressing information such as the SAP address.

Defining LUs

When a TN3270 client is fully connected, its TCP connection is paired with an SNA LU representation in the server. VTAM also has a representation for the same LU. Each of these LU representations has a name, and it is possible but not necessary for the server LU name to match the VTAM LU name. Since a typical TN3270 configuration involves thousands of LUs to satisfy as many potential clients, various schemes have been developed to ease the burden of configuring LUs and to make it possible for the server and VTAM names to match.

The IBM router implementation of TN3270 server currently supports the following LU definition methods. See the sections that follow for a detailed description of each method. All these methods are available regardless of whether your host link attachment is DLUR or subarea.

You can choose any of these LU definition methods, based on the size of your network configuration, level of router and VTAM code, LU naming requirements, and server load balancing requirements. You can combine HIDLU with the other methods by configuring some LUs in the router and allowing the rest to be dynamically created, even within the same PU.

Configured LUs

You need to configure LUs in the router unless you are using Host-Initiated Dynamic LUs. You can configure individual LUs or groups of LUs. Normally, you configure individual LUs when you want to fully specify the LU name and fix it at a particular NAU address. You configure groups of LUs when you have a large number of similar LUs to define and you want the router to generate the LU names.

To configure an individual LU from the command line, use the add lu command. You specify the name of the PU (or subarea link) for the LU, and the LU's name, type, and NAU address. To configure an individual LU from the Configuration Program, select LUs from under the TN3270E Server protocol in the Navigation Window, then click on the LUs column heading.

To configure a group of LUs from the command line, use the add implicit-pool command. This command defines a group of LUs under a single PU and places them in a pool. You can use this command several times to place different groups of LUs in the same pool, such as LUs from different PUs.

Each time you add a group, you specify the name of the PU, name of the pool, and LU type information. Instead of a single NAU address, you specify either a range of addresses, or the number of LUs you want to add. At initialization time, the router fixes the NAU addresses for configured individual LUs, then assigns the remaining addresses in the range, or number of addresses, to LUs in the group.

Instead of a single LU name, for a group you specify an LU name mask. When the router initializes, it assigns LU names by suffixing this mask with the LU's NAU address in decimal (not padded with leading zeros). For example, a mask of "@LU1A" might result in the LU names @LU1A1, @LU1A2, and so forth.

If you specify a NAU address range, the router generates names appending the NAU address starting with the bottom of the range going to the top, as just shown with @LU1A. If you specify the number of LUs instead of an NAU address range, the router generates names starting with NAU 2, incrementing up to 255, and ending with 1. For example, a mask of @LU2A for 10 LUs would generate the names @LU2A2, @LU2A3, ..., @LU2A11. The server code starts with 2 for migration consistency with prior code releases that did not support the NAU value 1. To see the exact names the router generates for LUs under a particular PU, use the Talk 5 TN3270 list pu name command.

To configure a group of LUs from the Configuration Program, you must first name the target pool by selecting Pools from under the TN3270E Server protocol in the Navigation Window. Then select LUs from the Navigation window and click the Implicit Pool column heading.

Dynamic Definition of Dependent LUs (DDDLU)

As summarized in Defining LUs, you may use DDDLU to avoid duplicate definition of LUs in both VTAM and the router. DDDLU allows you to configure LUs in one place only, the router. In VTAM, you only need to define one or more PUs depending on the number of LUs you need. Implementation of DDDLU also eliminates the effort of VTAM definitions and maintenance for future LU definition requirements.

Creating LUs at VTAM

When a TN3270E client requests a connection using one of the LUs defined in the router, the router sends a Reply PSID NMVT command to VTAM on the SSCP-PU session. In this command, the router sends the following information:

On receipt of this NMVT, VTAM sees from the PU definition that there is no definition for the LU in question. VTAM then uses the PU definition and the information in the NMVT to choose a model LU statement and create an LU definition.

The name that VTAM chooses for the dynamic LU is driven by an exit routine for Selection of Definitions for Dependent LUs (SDDLU). If you use the standard IBM-supplied user exit routine, VTAM constructs a name using the LUSEED value on the PU statement, suffixed by the NAU address. You must also code the LUGROUP operand to specify a model major node. These operations are described in VTAM Network Implementation Guide, SC31-8370, under the section entitled "Defining Dependent LUs Dynamically".

If you want VTAM to use the LU name that the router sends in the Reply PSID NMVT command, you must replace the standard SDDLU user exit with one available from the IBM router support download Web pages. This routine ignores the LUSEED operand and simply uses the name pushed from the router. To download this routine from the 2216 Web pages, for example, go to http://www.networking.ibm.com/support/downloads/2216 , select the link to "APPN/TN3270 Files", and select the user exit package. The package is common to all IBM routers.

Deleting LUs from VTAM

When a TN3270 client disconnects from the router, it sends VTAM another Reply PSID NMVT indicating that the device has powered off. VTAM can then delete the dynamically created LU. This frees up storage and makes the name available for reuse.

VTAM support for dynamic LU deletion on client disconnect is in the base code of CS for OS/390 V2R6, and is PTF'd to CS for OS/390 V1R3 and above with APAR OW29773.

Dynamic LUs and Network Dispatcher

IBM's Network Dispatcher (ND) can provide a TCP load balancing function when installed between clients and two or more TN3270 servers. The IBM router version of ND and TN3270 Server work together so that ND sends new client connections to the least busy TN3270 server. Previously, when using ND to load balance between TN3270 servers going to the same VTAM, you could not have LUs that needed a fixed VTAM LU name. This is because ND could route the client TCP connection to any of the servers, but you could not have duplicate LU names active at VTAM at the same time.

With LU name pushing and deletion, you can configure the desired LU name at all the potential TN3270 servers. When the client connects in, the server that ND selects sends the name to VTAM for dynamic creation. When the client disconnects, VTAM can delete it. This makes it available to be created again through whichever TN3270 server ND selects the next time the client connects in.

Additional Details

The following example shows a VTAM PU definition for DDDLU. Note that several static LUs that require specific LU names and 3270 printers on specific ports are also defined under the same switched major node.

Example:

DDDPU VBUILD TYPE=SWNET 
DDPU   PU ADDR=02,             x
       IDBLK=077,              x
       IDNUM=22160,            x 
       PUTYPE=2,               x
       USSTAB=US327X,          x
       LUGROUP=GROUP1,         x
       LUSEED=DDLU###,         x
       DLOGMOD=D4C32XX3
SALE01  LU   LOCADDR=98,                   x (1)
             DLOGMOD=D4C32XX3,             x
             LOGAPPL=CICSA
SALEPRT LU   LOCADDR=99,                   x (2)
             LOGMODE=SAL3287,              x
             LOGAPPL=CICSA

(1) In this sample definition, the LU 'SALE01' was requested to be on LOCADDR=98 because of specific requirements. Therefore, this specific LU is defined under this 'DDDPU' to meet the requirements.

(2) In this definition, the printer must also be on a specific address. This especially happens for some SNA applications (e.g. CICS). The application for the sales department needs a printer on address 99, with LOGMODE=SAL3287, and it needs to be connected to application CICSA when it is activated.

For users who wish to write their own or modify one of the VTAM SDDLU exit routines, the router sends LU information in the Reply PSID NMVT as follows:

An example of these subvectors follows:

191000 161103130012F3F2F7F0F0F0F2         (3270 device - mod 2)
1D86   1100C9C2D4E3D5F3F2F7F0D3E4D5C1D4C5 (IBMTN3270LUNAME)
       0A10C1C1C1C1C2C2C2C2               (LU name is AAAABBBB)

Table 4. Device/model type Values
Device/Model NMVT Vector
3270 mod 2 display 3270002
3270 mod 3 display 3270003
3270 mod 4 display 3270004
3270 mod 5 display 3270005
3270 printer 3270P
SCS printer SCSP

Host-Initiated Dynamic Definition of Dependent LUs (HIDLU)

As summarized in "Defining LUs", HIDLU removes the burden of configuring LUs in the router by having the router dynamically create LUs as they are activated from VTAM. This is essentially the opposite of DDDLU, where you configure the LUs in the router and dynamically create them in VTAM. HIDLU allows LUs to be defined in VTAM only. In the router you define only a PU, or as many PUs you need, but no LUs for these PUs.

When VTAM activates the PU and its LUs, the VTAM LU names are conveyed to the router in ACTLU commands in Control Vector 0E. LUs defined in this manner have the same name in both VTAM and the router.

To configure HIDLU in the router, you must still define local dependent PUs in the router either for DLUR or subarea links, as described in "Defining PUs". When you configure the DLUR PU or the subarea link, you simply indicate that Host-initiated dynamic LUs should be allowed for this PU. You also indicate whether these dynamic LUs are to be placed in a pool or not, by optionally specifying a pool name. If you do not specify a pool name, the LUs will be treated only as workstation LUs. If you do specify a pool name, you can indicate whether they are workstation or printer LUs. All pooled HIDLU LUs under a given PU must be in the same pool and have the same type. You can use the same pool name for multiple PUs if you want more than 255 LUs in the pool or you want the pool to span multiple subarea links.

If you place HIDLUs into a pool, you do not need to configure clients to explicitly request a particular LU. The clients can request an LU by pool name, using an IP address to pool mapping, or using a TCP port to pool mapping. You can also mix explicit LUs with HIDLU pooled LUs by configuring an individual LU under a PU that is configured with a host-initiated pool. When the ACTLU arrives for the configured individual LU, the router does not create a dynamic LU.

To configure HIDLU in VTAM, you must define the dependent LUs in the major node and specify INCLUD0E=YES on the PU statement. The INCLUD0E keyword is supported by VTAM V4R4 with APARs OW31805 and OW31436. For remote subarea connections through NCP, V7R6 is needed for INCLUD0E keyword support.

If the host is a DLUS and the PU is being serviced by a DLUR in another node, then CV0E of the ACTLU request may not be forwarded to the PU from the DLUR. In this case, the LUs will not be created dynamically. Once LUs have been created dynamically, they can only be removed by rebooting or manually deleting via configuration. If the LU names are changed in the host major node file after the LUs have been created dynamically, the local names in the router will not be changed.

Client to LU Mapping

When a TN3270 client connects to a server, the server must choose an LU to associate with that client, or deny the connection. There are a number of ways you can configure your clients and server to control which LUs will be chosen, and which clients will be denied. The IBM router implementation of TN3270 server supports the following methods:

The following sections describe background concepts, how to configure each of these methods, and how they work.

Concepts

LU Pools and Individual LUs

As described above in "Configured LUs", you can configure individual LUs or groups of LUs in the router. In addition, dynamic host-initiated LUs can be treated individually or in groups. An LU pool is simply a named group of LUs. For example, you might call a pool MYPOOLA.

The LUs in a pool can come from one or many different PUs. Except for host-initiated dynamic LUs, the LUs under a PU can be placed in multiple pools. The LUs that you place into a specific pool would typically have similar VTAM definitions and characteristics such as using the same USSMSG10. Using pools is your primary means to group similar LUs together and you will ultimately map a set of like TN3270 client end users to specific pools.

The Global Default Pool

There is always at least one pool defined to TN3270E Server, referred to as the Global Default Pool. You name this pool when you initially configure TN3270E Server, and by default it is named PUBLIC. Whatever you name the default pool, you can refer to that name in other parts of the server configuration using the special character string <DEFLT >. This permits you to later change the pool name in only one place without having to change all references to it. Note however that the string <DEFLT> has special meaning when used in an IP address mapping table entry, so you should be careful to understand that meaning when defining such mappings.

You may not need to have a default pool, but it will exist regardless. You do not, however, have to put any LUs into this pool.

Explicit and Implicit LUs

LUs in the TN3270 server can be divided into two categories, based on how clients are allowed to access them. Implicit LUs are always members of a pool, and clients can access them either by their individual name or by any of the methods that use pool names. You configure implicit LUs either by adding a group of them to a pool, or by adding individual ones to a pool. Explicit LUs are never members of a pool (even the global default pool), so they can be accessed only by clients requesting their individual name, or by IP address mappings to that name. The server function will never assign an explicit LU to a client that requests or is mapped to a pool name.

Clients Requesting LU Names

Client implementations that support RFCs 1646 or 2355 can request a resource name when they connect to a TN3270 server. In the IBM router server, this name is treated either as an individual LU name or as a pool name. In the client configuration, it may be called an LU name even though the same name is configured in the router as a pool name.

If your LU definition method involves different LU names at the router and at VTAM, the name passed by the client must match the router's LU name, not the LU name in VTAM.

In the absence of IP address and TCP port mapping, the server attempts to satisfy the client's request as follows:

See the sections below for what happens when a client a name and one of the mapping methods also applies.

Client IP Address to LU/Pool Mapping

You can configure the router's TN3270 server function to map client IP addresses either to individual LU names or to LU pool names. You may want to do this if your clients do not have the ability to request resource names, or you do not want to configure the clients individually. You may also want to use this function as a security mechanism, to deny connections to any clients that are not on the IP mapping access list.

To configure this mapping function, you first enable it globally as part of overall TN3270 server configuration. If you wish clients connecting to certain server TCP ports to be exempt from IP address mapping, you can disable this function on a port-by-port basis when you configure the ports. You then create a table of IP address mapping entries, each of which maps a set of IP addresses to a single LU or pool name. By default, a given entry applies to all server TCP ports, but you can specify that an entry should be used only for connections made to a certain destination TCP port. This allows you to have clients from different IP networks use the same set of port numbers but map to different LU pools based on both their network and the destination server port number.

The key fields in each mapping entry are: an IP address, and IP address mask, and an LU or LU pool name. The IP address mask indicates which bits of the configured IP address are to be compared against the corresponding bits in the incoming client's source IP address. This allows you to map either individual clients or entire subnets.

For example, if your mapping entry is defined as:

IP Address: 1.2.3.4 
Subnet Mask: 255.255.255.255 
Pool or LU: MYLU

If a TN3270 client connects in using IP address 1.2.3.4, then the TN3270E Server will assign MYLU to this client. Here we are mapping an individual IP address to an Individual LU. Specific clients can also be mapped to a pool.

If your mapping entry is defined as:

IP Address: 1.2.3.4 
Subnet Mask: 255.255.255.0 
Pool or LU: YOURPOOL

If a TN3270 client connects in using an IP address of 1.2.3.1, or 1.2.3.2, or 1.2.3.3, ..., etc. then TN3270E Server will assign the client an LU from YOURPOOL. Since the subnet mask is 255.255.255.0, all clients in this subnet would match this mapping entry. Masks that are not 255.255.255.255 must be mapped to a pool rather than to an individual LU.

Suppose you define both of the above mapping entries. Note that client 1.2.3.4 would match both of these mapping entries. TN3270E Server will always use the most specific match first. In this example, the client would get mapped to the LU called MYLU.

Suppose again that both of the above mapping entries are defined and client 1.2.3.4 connects in. TN3270 will choose the most specific mapping entry and attempt to connect with the LU called MYLU. However, for some reason the server cannot successfully establish the session with MYLU; MYLU could already be in use, or it may not be activated by VTAM. After unsuccessfully attempting to connect to MYLU, the server normally scans the IP address mapping table to see if there is another less specific match for this client. In our example there is another match and TN3270E Server would connect the client to an LU from YOURPOOL.

There are cases where you may not want the router to use a less-specific match after a more specific match fails. To control this behavior, you can optionally configure an entry as the "final LU mapping connection attempt". If this yes/no flag is set, the server function does not look for less specific matches following a failed match on this entry.

The TN3270 server makes the following checks when a client connects to the router and does not pass in a specific name request:

  1. If mapping is globally enabled, is mapping enabled on the destination port? If not, incoming requests are treated without using IP address mapping.
  2. If so, try to match the incoming client IP address against the mapping entries in this order:
    1. entries for the specific destination port, most specific IP address first
    2. entries for all destination ports, most specific IP address first
  3. If there is a match, try to pair the connection with the indicated LU or an LU in the indicated pool, honoring the LU type (workstation or printer) requested by the client
  4. If there is a problem and this is not the "final" mapping entry, repeat for less specific matches. Continue until all matches are exhausted or the connection is satisfied, before denying the connection.
  5. If there is no match at all, deny the connection

When a client connects in and makes a request for a specific name, the matching logic is different. In order to successfully connect, a mapping entry must exist whose IP address and mask match the client and whose resource name is the exact same as the name passed in by the client. If the client requests an individual LU name, that name must be in the mapping table, not just the name of a pool containing that LU. The server does not search the mapping table for the most specific IP address and mask match. If the connection to the LU/pool with the requested name cannot be satisfied, the server does not re-scan the mapping table for other matching entries.

You can use the TN3270 Talk 5 command list mapping to see the order in which mapping entries will be searched. You can put a specific IP address as a parameter to this command, to see only those mapping entries that apply to that IP address.

Here are a number of important additional considerations for constructing IP address mapping entries:

Server TCP Port to Pool Association

You can configure the router's TN3270 server function to map incoming client connections to LU pools based on the TCP port number to which the clients are connecting. You may want to do this if your clients do not have the ability to request resource names, or you do not want to configure the clients individually. You may also be migrating an existing network where clients already connect to different TCP port numbers based on application needs.

To configure TCP port to pool association, you specify a pool name with the port when you configure the port (see "Server TCP Ports"). Clients obviously each have to connect in through one of the defined ports and the server function assigns an LU based on what pool is associated with the port. If you do not specify a pool name for a port, or you give the special value <DEFLT>, the global default pool is associated with that port. This is the same pool you associate with the globally defined server port when you first configure the TN3270 server.

If a client connects in and does not pass a resource name, the TN3270 server function assigns an LU from the pool associated with the destination port. If no LUs are available, the connection is rejected.

If a client connects in and passes a specific LU or LU pool name, the following rules apply:

The above description assumes IP mapping is disabled. If IP address mapping is enabled, then by default the IP address mapping function applies to all ports and will override TCP port to pool mapping. You can change this default behavior by disabling IP address mapping on a TCP port basis, as described earlier. Note also the special case where an IP address mapping entry with the <DEFLT> pool can cause LU allocation from the pool associated with the TCP port.

Port and IP Address Mapping Combined

It is possible to use a combination of both IP address mapping and TCP port to pool association. The following is an example of how one user combined these methods to meet their mapping needs.

Load Balancing among Multiple PUs

It is common to define a large pool of LUs that reside in multiple PUs. Any pool with more than 255 LUs must include more than one PU. Spreading a pool's LUs across multiple PUs can lessen the number of clients affected by any given link or PU failure. How the server allocates LUs from among these multiple PUs also determines how many clients are affected by a link or PU failure. For example, if the server allocated all the LUs in one PU before allocating any from the second PU, failure of the first might affect as many as 255 clients needlessly.

The IBM router implementation of TN3270 generally does round-robin allocation of LUs from among multiple PUs in a pool. All other things being equal, it will allocate LU1 from PU1, LU1 from PU2, and so on. At the same time the allocation algorithm favors those PUs that are currently active (avoiding the delay of an activation attempt), and it favors LUs that provide an exact match to the model type requested by the client.

The rules for LU selection are as follows:

Based on whether an exact or acceptable match is found, PUs are moved on a list to provide general round-robin allocation while keeping less desirable PUs from always being searched first.


Example Configurations

This section contains sample VTAM and router command-line configurations for basic TN3270 server scenarios. For more advanced scenarios and Configuration Program information, see "Other Example Configurations".

Configuring TN3270 using DLUR

If you are using DLUR to communicate with the host, the local PUs used by the TN3270E Server need to be configured in the host as DLUR internal PUs. The following code is an example of the host VTAM configuration:

PUJOE7      PU         ADDR=12,
                       IDBLK=077, IDNUM=EEEE7, (1)  
                       MAXPATH=8,
                       ISTATUS=ACTIVE,
                       MODETAB=LMT3270,
                       USSTAB=STFTSNA2,
                       ANS=CONT,
                       MAXDATA=521,
                       IRETRY=YES,
                       MAXOUT=7,
                       DLOGMOD=G22NNE,
                       NETID=STFNET,
                       PASSLIM=5,
                       PUTYPE=2
 JCPATH7    PATH       PID=1,
                       DLURNAME=VLNN01,
                       DLCADDR=(1,C,INTPU),
                       DLCADDR=(2,X,07711111)       
 JC7LU2     LU          LOCADDR=2
 JC7LU3     LU          LOCADDR=3
 JC7LU4     LU          LOCADDR=4
 JC7LU5     LU          LOCADDR=5
 JC7LU6     LU          LOCADDR=6
Note:(1) 07711111 represents the ID block/ID number of the local PU. The 077 part of this value is not configurable at the router.

The following example shows how to configure the router to use an upstream DLUR connection for TN3270, using the command line.

APPN config>
APPN config>set node
Enable APPN (Y)es (N)o [Y]?
Network ID (Max 8 characters) [STFNET]?
Control point name (Max 8 characters) [VLNN2]?
Enable branch extender (Y)es (N)o [N]?
Route addition resistance(0-255) [128]?
XID ID number for subarea connection (5 hex digits) [00000]?
Use enhanced #BATCH COS (Y)es (N)o [Y]?
Use enhanced #BATCHSC COS (Y)es (N)o [Y]?
Use enhanced #INTER COS (Y)es (N)o [Y]?
Use enhanced #INTERSC COS (Y)es (N)o [Y]?
Write this record? [Y]?
The record has been written.
APPN config>
APPN config>
APPN config>set dlur
Enable DLUR (Y)es (N)o [Y]?
Fully-qualified CP name of primary DLUS [STFNET.MVS8]?
Fully-qualified CP name of backup DLUS []?
Perform retries to restore disrupted pipe [Y]?
Delay before initiating retries(0-2756000 seconds) [120]?
Perform short retries to restore disrupted pipe [Y]?
Short retry timer(0-2756000 seconds)[120]?
Short retry count(0-65535) [5]?
Perform long retry to restore disrupted pipe [Y]?
Long retry timer(0-2756000 seconds) [300]?
Write this record? [Y]?
The record has been written.
APPN config>
APPN config>tn3270e
TN3270E config>set
TN3270E Server Parameters
    Enable TN3270E Server (Y/N) [Y]?
    TN3270E Server IP Address[4.3.2.1]?
    Port Number[23]?
    Enable Client IP Address to LU Name Mapping (Y/N) [N]
    Default Pool Name[PUBLIC]?
    NetDisp Advisor Port Number[10008]?
    Keepalive type:
     0 = none,
     1 = Timing Mark,
     2 = NOP[2]?
    Frequency ( 1 - 65535 seconds)[60]?
    Automatic Logoff (Y/N)[N]?
Write this record?[Y]?
The record has been written.
TN3270E config>exit
APPN config>
APPN config>add loc
Local PU information
     Station name (Max 8 characters) []? link1
     Fully-qualified CP name of primary DLUS[STFNET.MVS8] ?
     Fully-qualified CP name of a backup DLUS[]?
     Local Node ID (5 hex digits)[11111]?
     Autoactivate (y/n)[Y]?
Write this record?[Y]?
The record has been written.
 
APPN config>tn3270
TN3270E config>add im
TN3270E Server Implicit definitions
     Pool name (Max 8 characters)[<DEFLT>]?
     Station name (Max 8 characters)[]? link1
     LU Name Mask (Max 5 characters) [@01LU]?
     LU Type     ( 1 - 3270 mod 2 display
                   2 - 3270 mod 3 display
                   3 - 3270 mod 4 display
                   4 - 3270 mod 5 display) [1]?
     Specify LU Address Range(s) (y/n) [n]
     Number of Implicit LUs in Pool(1-255) [50]?
Write this record?[Y]?
The record has been written.
TN3270E config>
TN3270E config>add lu
TN3270E Server LU Definitions
     LU name(Max 8 characters) []? printer1
     NAU Address (1-255) [0] 2
     Station name (Max 8 characters) []? link1
         Class:
          1 = Explicit Workstation,
          2 = Implicit Workstation,
          3 = Explicit Printer,
          4 = Implicit Printer[3]?
     LU Type ( 5 - 3270 printer
               6 - SCS printer) [5]?
Write this record[Y]?
The record has been written.
TN3270E config>
TN3270E config>list all
TN3270E Server Definitions
TN3270E enabled: YES
TN3270E IP Address: 4.3.2.1
TN3270E Port Number: 23
Keepalive type: NOP          Frequency: 60
Automatic Logoff: N        Timeout: 30
        Enable IP Precedence: N
Link Station: link1
        Local Node ID: 11111
        Auto activate : YES
        Implicit Pool Informationø
                Number of LUs: 50
                LU Mask: @01LU
        LU Name   NAU addr     Class             Assoc LU Name   Assoc  NAU addr
 
        --------------------------------------------------------------- --------
        printer1      2       Explicit Printer
 
TN3270E config>exit
APPN Config>exit
 
Config>
Config>p ip
Internet protocol user configuration
IP config>li all
Interface addresses
IP addresses for each interface:
   intf  0   9.1.1.20         255.0.0.0        Local wire broadcast, fill 1
   intf  1                                     IP disabled on this interface
   intf  2                                     IP disabled on this interface
Internal IP address: 4.3.2.1
 
Routing
 
Protocols
BOOTP forwarding: disabled
IP Time-to-live: 64
Source Routing: enabled
Echo Reply: enabled
TFTP Server: enabled
Directed broadcasts: enabled
ARP subnet routing: disabled
ARP network routing: disabled
Per-packet-multipath: disabled
OSPF: disabled
BGP: disabled
RIP: disabled
 
IP config>
*
 

Configuring TN3270E Using a Subarea Connection

The following example shows how to configure the router to use an SNA subarea (non-APPN) upstream host connection for TN3270, using the command line. In this example, the router appears to VTAM as multiple downstream PUs.

Config>p appn
APPN config>set node
Enable APPN (Y)es (N)o [Y]?
Network ID (Max 8 characters) [STFNET]?
Control point name (Max 8 characters) [VLNN2]?
Enable branch extender (Y)es (N)o [N]?
Route addition resistance(0-255) [128]?
XID ID number for subarea connection (5 hex digits) [00000]?
Use enhanced #BATCH COS (Y)es (N)o [Y]?
Use enhanced #BATCHSC COS (Y)es (N)o [Y]?
Use enhanced #INTER COS (Y)es (N)o [Y]?
Use enhanced #INTERSC COS (Y)es (N)o [Y]?
Write this record? [Y]?
The record has been written.
APPN config>
 
APPN config>add port
APPN Port
Link Type: (P)PP, (FR)AME RELAY, (E)THERNET, (T)OKEN RING,
(S)DLC, (X)25, (FD)DI, (D)LSw, (A)TM, (I)P  []?fr
Interface number(Default 0): [0]? 2
Port name (Max 8 characters) [F00002]?
Enable APPN on this port (Y)es (N)o [Y]?
Port Definition
    Support multiple subarea (Y)es (N)o [N]? y
All active port names will be of the form <port name sap>
    Service any node: (Y)es (N)o [Y]?
    High performance routing: (Y)es (N)o [Y]? n
    Maximum BTU size (768-8136) [2048]?
    Percent of link stations reserved for incoming calls (0-100) [0]?
    Percent of link stations reserved for outgoing calls (0-100) [0]?
    Local SAP address (04-EC) [4]?
    Support bridged formatted frames: (Y)es (N)o [N]?
Edit TG Characteristics: (Y)es (N)o [N]?
Edit LLC Characteristics: (Y)es (N)o [N]?
Edit HPR defaults: (Y)es (N)o [N]?
Write this record? [Y]?
The record has been written.
APPN config>add link
APPN Station
Port name for the link station [ ]&sqbul.? f00002
Station name (Max 8 characters) [ ]? suba1
    Activate link automatically (Y)es (N)o [Y]?
    DLCI number for link (16-1007) [16]? 23
    Adjacent node type: 0 = APPN network node,
    1 = APPN end node or Unknown node type,
    2 = LEN end node [0]?
    Solicit SSCP Session: (Y)es (N)o [N]? y
         Local Node ID (5 hex digits) [00000]? 12345
    Local SAP address (04-EC) [4]? c
    Allow CP-CP sessions on this link (Y)es (N)o [Y]? n
    Configure CP name of adjacent node: (Y)es (N)o [N]?
Edit TG Characteristics: (Y)es (N)o [N]?
Edit LLC Characteristics: (Y)es (N)o [N]?
Edit HPR defaults: (Y)es (N)o [N]?
Write this record? [Y]?
The record has been written.
APPN config>act
APPN config>
APPN config>tn3270e
TN3270E config>set
TN3270E Server Parameters
    Enable TN3270E Server (Y/N) [Y]?
    TN3270E Server IP Address[4.3.2.1]?
    Port Number[23]?
    Enable Client IP Address to LU Name Mapping (Y/N) [N]
    Default Pool Name[PUBLIC]?
    NetDisp Advisor Port Number[10008]?
    Keepalive type:
     0 = none,
     1 = Timing Mark,
     2 = NOP[2]?
    Frequency ( 1 - 65535 seconds)[60]?
    Automatic Logoff (Y/N)[N]?
Write this record?[Y]?
The record has been written.
TN3270E config>exit
APPN config>
Write this record?[Y]?
The record has been written.
 
APPN config>tn3270
TN3270E config>add im
TN3270E Server Implicit definitions
     Pool name (Max 8 characters)[<DEFLT>]?
     Station name (Max 8 characters)[]? suba1
     LU Name Mask (Max 5 characters) [@01LU]?
     Specify LU Address Range(s) (y/n) [N]
     Number of Implicit LUs in Pool(1-255) [50]?
Write this record?[Y]?
The record has been written.
TN3270E config>
TN3270E config>add lu
TN3270E Server LU Definitions
     LU name(Max 8 characters) []? printer1
     NAU Address (1-255) [2]
     Station name (Max 8 characters) []? suba1
         Class:
          1 = Explicit Workstation,
          2 = Implicit Workstation,
          3 = Explicit Printer,
          4 = Implicit Printer[3]?
          LU Type ( 5 - 3270 printer
                    6 - SCS printer) [5]?
Write this record[Y]?
The record has been written.
TN3270E config>
TN3270E config>list all
TN3270E Server Definitions
TN3270E enabled: YES
TN3270E IP Address: 4.3.2.1
TN3270E Port Number: 23
Keepalive type: NOP          Frequency: 60
Automatic Logoff: N        Timeout: 30
        Enable IP Precedence: N
Link Station: suba1
        Local Node ID: 12345
        Auto activate : YES
        Implicit Pool Informationø
                Number of LUs: 50
                LU Mask: @01LU
        LU Name   NAU addr     Class             Assoc LU Name   Assoc  NAU addr
 
        --------------------------------------------------------------- --------
        printer1      2       Explicit Printer
 
TN3270E config>exit
APPN Config>exit
 

APPN config>act

Other Example Configurations

The TN1 model of the Network Utility product was designed to be used as a TN3270 server, and it shipped with example TN3270 configuration information that can be helpful to users of the 2216, 2212, and 2210. This information is available both in product publications and in example binary configuration files on the Web.

The publication Network Utility: Installation, Getting Started, and User's Guide, GA27-4167-02, documents the router configuration (usually both the command-line and Configuration Program) and sample VTAM configurations for the following network configurations:

Some of the above configurations are supplemented on the Web by both router-format and Configuration Program-format binary configuration files. Use your browser to reach these as follows:

  1. Open the Network Utility downloads page at: http://www.networking.ibm.com/support/downloads/networkutility
  2. Follow the link to "Configuration Program" files
  3. Find the code release you are using (the file contents have already been upgraded for each release)
  4. Open the package named "Example Configuration Files"

Some of the documentation tables are specific to Network Utility because that product pre-sets certain configurable tuning parameters. To understand how to map the documentation to a IBM 2216 of similar memory capacity, read the instructions in the "Example Configuration File" Web packages mentioned above. The Configuration Program format files may be usable only on a Network Utility, except as an example you can browse using the Configuration Program.


Footnotes:

4
You can also find small, dedicated TN3270 client products that represent printers.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]